<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-align/#distribution-multicol">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<style>
@import "/fonts/ahem.css";
body {
  font: 10px/1 Ahem;
  margin: 0;
}

#container {
  width: 400px;
  height: 90px;
  columns: 2;
  widows: 1;
  orphans: 1;
}
</style>

<div id="container" style="align-content: end;">
  <div>text<br>text</div>
  <div style="column-span:all">span</div>
  <div>text<br>text</div>
</div>

<script>
const LINE_HEIGHT = 10;
const Result = {
  START: 0,
  CENTER: (90 - LINE_HEIGHT * 3) / 2,
  END: 90 - LINE_HEIGHT * 3,
};
const data = [
  ['normal', Result.START],
  ['start', Result.START],
  ['unsafe start', Result.START],
  ['safe start', Result.START],
  ['flex-start', Result.START],
  ['space-between', Result.START],
  ['stretch', Result.START],
  ['center', Result.CENTER],
  ['unsafe center', Result.CENTER],
  ['safe center', Result.CENTER],
  ['space-around', Result.CENTER],
  ['space-evenly', Result.CENTER],
  ['end', Result.END],
  ['unsafe end', Result.END],
  ['safe end', Result.END],
  ['flex-end', Result.END]
];

for (let d of data) {
  for (let c of ['none', 'size']) {
    test(() => {
      container.style.alignContent = d[0];
      container.style.contain = c;
      const children = container.querySelectorAll('div');
      assert_equals(children[0].offsetTop, d[1]);
      assert_equals(children[1].offsetTop, d[1] + LINE_HEIGHT);
      assert_equals(children[2].offsetTop, d[1] + LINE_HEIGHT * 2);
    }, `align-content: ${d[0]}` + (c == 'none' ? `` : `; contain: ${c}`));
  }
}
</script>
